package com.utils;

import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
 * @description: 对数组的分组，排序等等
 * @author: yangcancan
 * @date: 2020/3/9 12:45
 */
public class ListUtils {
    /**
     * 对List按照<T>的属性进行分组
     *
     * @param list       分组对象
     * @param classifier 分组条件
     * @param <K>        分组条件数据类型
     * @param <T>        List数据类型
     * @return Map<K, List < T>>
     */
    public static <K, T> Map<K, List<T>> list2Map(List<T> list, Function<T, K> classifier) {
        return list.stream().collect(Collectors.groupingBy(classifier));
    }
}
